package com.mysoft.gfyx.clue.service;

import com.mysoft.gfyx.clue.controller.dto.Perm.GetUserAreaPermissionResponseDto;
import com.mysoft.gfyx.clue.controller.dto.Perm.GetUserBUDataPermissionResponseDto;
import com.mysoft.gfyx.clue.controller.dto.Perm.ImportUserBUDataPermissionRequestDto;
import com.mysoft.gfyx.clue.controller.dto.Perm.ImportUserBUDataPermissionResponseDto;
import com.mysoft.gfyx.clue.dao.entity.PermType;

import java.io.IOException;
import java.util.List;
import java.util.UUID;

public interface DataPermissionService {

    enum DataPermissionType {
        CustomerClue
    }

    enum BUDataPermissionType {
        Area
    }

    void saveUserBUDataPermission(DataPermissionType dataPermissionType, UUID BUGUID, BUDataPermissionType filterType, String filterValue, List<UUID> UsersGUID);

    void saveBUDataPermission(UUID permTypeGUID, UUID BUGUID, BUDataPermissionType filterType, String filterValue);

    void saveBUDataManager(UUID BUGUID, UUID permTypeGUID, List<UUID> UsersGUID);

    PermType getPermType(DataPermissionType filterType);

    GetUserBUDataPermissionResponseDto getUserBUDataPermission(DataPermissionType filterType, UUID BUGUID);

    GetUserAreaPermissionResponseDto getUserPermissionArea();

    // 导入用户权益
    ImportUserBUDataPermissionResponseDto importUserBUDataPermission(ImportUserBUDataPermissionRequestDto dto) throws IOException;
}
